#pragma once

#include <memory>

class IOperation
{
public:
    /* data */
    double num1;
    double num2;
public:
    IOperation() = default;
    virtual ~IOperation() = default;

    virtual double GetResult() const = 0; // 获取算式结果
    virtual double operator()(double num1, double num2) const = 0;
};

using IOperation_ptr = std::shared_ptr<IOperation>;
